1. Field of Invention
This invention relates to data processing systems and particularly to data transfer techniques between peripheral devices and main memory related to a relatively slow central processing unit (CPU) such as a microprocessor.
A typical microprocessor, such as a Zilog Z-80 or Intel 8080 is frequently incapable of handling high-speed data transfer functions under program control, as between high-speed peripheral devices such as disk drives and main memory, while maintaining other necessary functions. To solve this problem of limitations on high data transfer rates, direct memory access (DMA) circuitry is needed. Typical DMA circuitry, such as a Zilog Z-80-DMA type integrated circuit, places a CPU in a WAIT state and then takes over the CPU address and data lines to directly address, read from or write to main memory. A DMA device is typically a complex circuit requiring address counters, port counters, byte counters, random control logic and several control status registers, much of which is redundant with the address register, bus drivers and control logic associated with or a part of the CPU. Consequently, a standalone DMA device may cost more than a CPU and require appreciable program storage in the main memory in order to support its operation. The DMA device may also interfere with important system operations. In some microprocessor devices such as the Z-80 CPU, certain secondary functions are provided over the data bus between instruction cycles. For example, refresh information may be fed to dynamic random access memory (dynamic RAM) during interim periods. A DMA circuit which takes control of the system input/output bus typically interrupts the secondary function, thereby creating a potential for memory failure.
Other problems created by DMA circuits include potential for indefinite suspension of processing and data bus access in the event of noncoincidence between the number of bytes in a DMA byte counter and the number of bytes transferred from the peripheral device.
What is therefore needed is a technique and apparatus which allows direct memory access to main memory in a data processing system without disrupting system operation.